Community Place version 2 alpha

Functional Mapping for the latest

Moving Worlds Specifications


How to read the tables


Tables

Following tables are categorized by The Moving Worlds VRML 2.0 Specification Draft #1 on April 18, 1996.

Grouping Nodes

Anchor

Func ROUTE read write
field url O - - -
field description O - - -
exposed field parameters X X - -
exposed field children O X - -

Billboard

Not implemented yet.

Collision

Func ROUTE read write
exposed field collide X X - -
field proxy X - - -
exposed field children X X - -
event-out collision - X - -

Notes:
The current implementation assumes the whole scene graph is children of a Collision{collide TRUE}. That is, you cannot pass through objects in default.

Group

Func ROUTE read write
field bboxCenter * - - -
field bboxSize * - - -
exposed field children O X - -
event-in add_children - X - -
event-in remove_children - X - -

Notes:
The place/size of bbox is calculated from the objects in a Group automatically. So, you cannot set them.

Inline

Func ROUTE read write
field url * - - -
field bboxSize * - - -
field bboxCenter * - - -

Notes:
If you set more than one URL, only the first one will be loaded. All the files consisting of a world are loaded at the first stage of entering the world.
The place/size of bbox is calculated from the objects in a Inline automatically. So, you cannot set them.

LOD

Func ROUTE read write
field range O - - -
field center O - - -
exposed field levels O X - -

Switch

Func ROUTE read write
exposed field whichChild * O - -
exposed field choices O X - -

Notes:
When the value of whichChild is -3, Switch node show all its children. (same as VRML 1.0)

Transform

Func ROUTE read write
field bboxCenter * - - -
field bboxSize * - - -
exposed field translation O O O O
exposed field rotation O O X O
exposed field scale X X - -
exposed field scaleOrientation X X - -
exposed field center X X - -
exposed field children O X - -
event-in add_children - X - -
event-in remove_children - X - -

Notes:
The place/size of bbox is calculated from the objects in Transform automatically. So, you cannot set them.

Leaf Nodes

DirectionalLight

Func ROUTE read write
exposed field on O O - -
exposed field intensity O O - -
exposed field ambientIntensity X X - -
exposed field color O O - -
exposed field direction O X - -

Notes:
Our rendering engine doesn't support ambientIntensity function.

Fog

Func ROUTE read write
exposed field size * X - -
exposed field visibilityRange O X - -
exposed field color * X - -

Notes:
Our rendering engine always has no limit of size.
Only last defined Fog node works.
When your PC is in 16 bit display mode, color field are automatically set to be (0, 0, 0).

PointLight

Func ROUTE read write
exposed field on O O - -
exposed field intensity O O - -
exposed field ambientIntensity X X - -
exposed field color O O - -
exposed field location O X - -
exposed field radius X X - -
exposed field attenuation X X - -

Notes:
Due to the restriction of our rendering engine, ambientIntensity has not been supported yet. To avoid confusing which comes from the semantic difference (*1) of radius between our rendering engine and Moving Worlds spec, radius field and attenuation field will be ignored and the radius is always infinity. (that is, not be attenuated.)
(*1) the radius of the former is the radius which begins to be attenuated. the latter one is the radius where intensity comes to 0.

Shape

Func ROUTE read write
field appearance O - - -
field geometry O - - -

Sound

Func ROUTE read write
exposed field source O X - -
exposed field intensity O O - -
exposed field priority X X - -
exposed field location O X - -
exposed field direction O X - -
exposed field minFront O X - -
exposed field maxFront O X - -
exposed field minBack * X - -
exposed field maxBack * X - -
field spatialize X - - -

Notes:
The current implementation assumes minBack == minFront, maxBack == maxFront.

SpotLight

Func ROUTE read write
exposed field on O O - -
exposed field intensity O O - -
exposed field ambientIntensity X X - -
exposed field color O O - -
exposed field location O X - -
exposed field direction O X - -
exposed field beamWidth * X - -
exposed field cutOffAngle O O - -
exposed field radius X X - -
exposed field attenuation X X - -

Notes:
Due to the restriction of our rendering engine, ambientIntensity has not been supported yet. To avoid confusing which comes from the semantic difference (*1) of radius between our rendering engine and Moving Worlds spec, radius field and attention field will be ignored and the radius is always infinity. (that is, not be attenuated.) the beamWidth field will be default value defined by our rendering engine.

Bindable Leaf Nodes

Background

Func ROUTE read write
exposed field groundColor X X - -
exposed field groundRange X X - -
exposed field skyColor * X - -
exposed field skyRange X X - -
exposed field posX X X - -
exposed field negX X X - -
exposed field posY X X - -
exposed field negY X X - -
exposed field posZ X X - -
exposed field negZ * X - -
event-in bind - X - -
event-out isBound - X - -

Notes:
Due to the restriction of our rendering engine, values except for skyColor[0] will be ignored and the background will be drawn with it. Regarding background textures, values except for negZ will be ignored and the texture of negZ will be mapped with tiling.

NavigationInfo

Func ROUTE read write
exposed field avatorSize X X - -
exposed field headLight O X - -
exposed field speed O X - O
exposed field type X X - -
exposed field visibilityLimit O X - -
event-in bind - X - -
event-out isBound - X - -

Notes:
You can change speed field with using a method of Browser class.

Viewpoint

Func ROUTE read write
exposed field position O X * *
exposed field orientation O X * *
exposed field fieldOfView O X - -
field description X - - -
event-in bind - X - -
event-out bindTime - X - -
event-out isBound - X - -

Notes:
You can change viewpoint by changing translation or rotation of the Transform node which defines the coordinate system of the Viewpoint.

Sensor Nodes

CylinderSensor

Not implemented yet.

Disksensor

Not implemented yet.

PlaneSensor

Not implemented yet.

ProximitySensor

Not implemented yet.

SphereSensor

Not implemented yet.

TimeSensor

Func ROUTE read write
exposed field cycleInterval O O - -
exposed field discrete O O - -
exposed field enabled O O - -
exposed field loop O O - -
exposed field stopTime O O - -
exposed field startTime O O - -
event-out isActive - O - -
event-out fraction - O - -
event-out time - O - -

TouchSensor

Func ROUTE read write
exposed field enabled O O - -
event-out isOver - O - -
event-out isActive - O - -
event-out hitPoint - X - -
event-out hitNormal - X - -
event-out hitTexCoord - X - -
event-out touchTime - X - -
event-out hitNode - O - -

Notes:
The hitNode field is not specified in VRML2.0 but SONY specific.

VisibilitySensor

Not implemented yet.

Global Nodes

Script

Func ROUTE read write
field url O - - -
field scriptType O - - -
field mustEvaluate X - - -
field directOutputs X - - -

WorldInfo

Func ROUTE read write
field title O - - -
field info O - - -

Geometry Nodes

Box

Func ROUTE read write
field size O - - -

Cone

Func ROUTE read write
field bottomRadius O - - -
field height O - - -
field side O - - -
field bottom O - - -

Notes:
TextureTransform fields in Appearance does not work.

Cylinder

Func ROUTE read write
field radius O - - -
field height O - - -
field side O - - -
field top O - - -
field bottom O - - -

Notes:
TextureTransform fields in Appearance does not work.

ElevationGrid

Not implemented yet.

Extrusion

Not implemented yet.

IndexedFaceSet

Func ROUTE read write
exposed field coord O X - -
field coordIndex O - - -
exposed field texCoord O X - -
field texCoordIndex O - - -
exposed field color O X O O
field colorIndex O - - -
field colorPerVertex * - - -
exposed field normal O X - -
field normalIndex O - - -
field normalPerVertex O - - -
field ccw O - - -
field solid * - - -
field convex * - - -
field creaseAngle * - - -

Notes:
Changing color by routing to IndexedFaceSet is not implemented yet. However, there is a higher level API for doing the same thing.
Even when colorPerVertex is specified TRUE, color per vertex is not supported. Instead, the average color of all vertex of a face is given to the face.
Parameters of "solid" and "convex" will not be evaluated.
Parameter "creaseAngle" effects as following:
Only when normal is not NULL and creaseAngle value is 3.14, smooth shading will be given for all faces by calculating normals of each vertex.

IndexedLineSet

Not implemented yet.

PointSet

Not implemented yet.

Sphere

Func ROUTE read write
field radius O - - -

Notes:
TextureTransform fields in Appearance does not work.

Text

Func ROUTE read write
exposed field string * X - -
field fontStyle * - - -
field maxExtent X - - -
field length * - - -

Notes:
Although the MovingWorlds specifies string/length fields to be MFString, our current implementation shows the first element only.
The current implementation does not support multi-byte characters.
fontStyle field is assumed to be as follows:

Geometric Property Nodes

Color

Func ROUTE read write
exposed field rgb O X O O

Notes:
You cannot change object's color by routing events to Color nodes. Instead, we offer Java API to change object's color.

Coordinate

Func ROUTE read write
exposed field point O X - -

Normal

Func ROUTE read write
exposed field vector O X - -

TextureCoordinate

Func ROUTE read write
exposed field point O X - -

Appearance Node and Appearance Property Nodes

Appearance

Func ROUTE read write
exposed field material O X - -
exposed field texture O X - -
exposed field textureTrans O X - -

FontStyle

Not implemented yet.

ImageTexture

Func ROUTE read write
exposed field url O X - -
field repeatS * - - -
field repeatT * - - -

Notes:
Our rendering engine supports only repeatS = repeatT = TRUE. It limits the number of texture tiling repetition to be less than 33.

Material

Func ROUTE read write
exposed field diffuseColor O X * *
exposed field ambientIntensity X X - -
exposed field specularColor * X - -
exposed field emissiveColor O X * *
exposed field shininess * X - -
exposed field transparency O X * *

Notes:
Our rendering engine does not support ambientIntensity and specularColor. The specular is realized in combination with specularColor and the default shininess for our rendering engine.

MovieTexture

Func ROUTE read write
exposed field url X X - -
exposed field speed X X * *
exposed field loop X X - -
exposed field startTime X X - -
exposed field stopTime X X - -
field repeatS X - - -
field repeatT X - - -
event-out duration - X - -

Notes:
The following methods are defined temporarily to realize movies.

PixelTexture

Not implemented yet.

TextureTransform

Func ROUTE read write
exposed field translation * X - -
exposed field rotation * X - -
exposed field scale * X - -
exposed field center * X - -

Notes:
TextureTransform does not work for Cone, Cylinder and Sphere. This is because our rendering engine can not map textures on non-rectangular faces.

Animation Interpolation Nodes

ColorInterpolator

Not implemented yet.

CoordinateInterpolator

Not implemented yet.

NormalInterpolator

Not implemented yet.

OrientationInterpolator

Not implemented yet.

PositionInterpolator

_fraction
Func ROUTE read write
exposed field keys O X - -
exposed field values O X - -
event-in set- O - -
event-out outValue - O - -

ScalarInterpolator

Not implemented yet.

Media Nodes

AudioClip

Func ROUTE read write
field url O - - -
field description X - - -
exposed field loop O X - -
exposed field startTime O O - -
exposed field stopTime O O - -
exposed field pitch X X - -
event-out duration - X - -
event-out isActive - X - -

Other Syntax Features

ROUTE

We are now proposing to MovingWorlds that it should support high-level Java methods to manipulate 3D objects easily in Scripts. Functions of those methods can be realized using ROUTEs if you write many codes in Java. In this implementation, we want to show how Scripts can be simple if you use high-level Java methods, and put less priority on implementing ROUTEs.

Notice that most functions originally by ROUTEs are realized in a more easy-to-read way using high-level methods.

PROTO

Not implemented yet.